I. Field of the Invention
The present invention relates generally to Flash memory and more particularly to memory block protection.
II. Description of the Related Art
Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Common uses for Flash memory include portable computers, personal digital assistants (PDAs), digital cameras, and cellular telephones. In these devices, program code, system data such as a basic input/output system (BIOS), and other firmware can typically be stored in Flash memory. The use of Flash memory to store upgradeable data has necessitated the development of mechanisms to protect the data from unintended erasure or reprogramming.
Originally, a Flash memory device was erased all at once. Newer memory devices are typically based on a block architecture in which the Flash memory is divided into blocks of memory. This allows the file systems to erase blocks of Flash memory instead of the entire device. For example, critical system code can be stored in a lockable block of memory while other blocks are allocated to other portions of code or data.
To ensure the integrity of block-based Flash memory, memory blocks should be protected against unintended write operations when data is written to the device or when code updates occur. One method of block protection for Flash memory includes the use of block locking configuration data that is stored in the Flash memory.
This approach, however, still exposes the memory blocks to inadvertent or malicious corruption of data. The block may be inadvertently unlocked and erased or overwritten. Additionally, a computer virus may be written to unlock the memory blocks and corrupt the data stored in those blocks. Any loss of data would typically result in a user expending time and money to replace the data. There is a resulting need in the art to permanently lock memory blocks in a Flash memory device.